1. The Field of the Invention
The present invention relates generally to optoelectronic communication devices. More specifically, the present invention relates to task scheduling efficiency of firmware and/or software associated with optoelectronic transceiver devices.
2. The Relevant Technology
Computing and networking technology have transformed our world. As the amount of information communicated over networks has increased, high speed transmission has become ever more critical. Many high speed data transmission networks rely on optical transceivers and similar devices for facilitating transmission and reception of digital data embodied in the form of optical signals over optical fibers. Optical networks are thus found in a wide variety of high speed applications in networks of all sizes.
Typically, data transmission in such networks is implemented by way of an optical transmitter (also referred to as an electro-optic transducer), such as a laser or Light Emitting Diode (LED). The electro-optic transducer emits light when current is passed there through, the intensity of the emitted light being a function of the current magnitude through the transducer. Data reception is generally implemented by way of an optical receiver (also referred to as an optoelectronic transducer), an example of which is a photodiode. The optoelectronic transducer receives light and generates a current, the magnitude of the generated current being a function of the intensity of the received light.
The characteristics of an optical transmitter and receiver are changed over operational conditions like temperature and voltage. For example, the threshold current and slope efficiency of a laser diode change over temperature. To ensure the quality and integrity of data transmission, various measurement and compensation circuits are employed by an optical transceiver to compensate for these changes. Furthermore, an optical transceiver with digital diagnostics features need to communicate with hosting equipment in a protocol defined by multi source agreement (“MSA”) specification, e.g. small form-factor pluggable (SFP) transceiver MSA and 10-gigabit small form-factor pluggable (XFP) transceiver MSA.
The measurement, compensation, diagnostics, communication, and potentially other functions are typically controlled and/or implemented in part by a microcontroller and its associated embedded software (hereinafter referred to as firmware). The firmware that is typically designed in a modular form for ease of maintenance contains multiple firmware modules with each handling one of the above functions. For example, the firmware may contain an acquisition module for sequencing an analog-to-digital converter (ADC) to measure multiple analog input signals one by one. It may also have a calibration module that adopts certain algorithms to eliminate errors of various component parameters, e.g. temperature coefficient of a thermistor sensing the operational temperature. The firmware may further contain a logic evaluation module that assesses the calibrated parameters in real time and triggers a control action upon crossing preset alarm and warning thresholds, or simply leaves the calibrated parameters and alarm and warning flags to a communication module for queries initiated by host equipment. All these firmware modules are executed by a microcontroller or the like which typically contains only one or two CPUs due to the restrictions of component cost. Planning of the use of CPUs on processing each firmware module, which is referred to hereinafter as “task scheduling”, is essential to ensure all modules are timely processed. For the convenience of description, a firmware module allocable with a slice of CPU time is also referred to as a “task” from the task management perspective.
New digital diagnostic features of optical transceivers require high processing power. This may be caused by the growing number of tasks performed as a result of increasing complexity of transceivers, or simply by frequent and/or fast execution of certain tasks to meet the new requirements of high refresh rate and/or low response time. There are several potential solutions to this problem.
Increasing the clock frequency of the CPU of the microcontroller may reduce or even eliminate the delay in task performance but would introduce problems in circuit operation. High operation frequency is associated with high power consumption and large electrical noise in the system circuit. Increased electrical noise will cause deterioration of the front ends of weak analog signals in the circuit and even violation to electromagnetic interference (“EMI”) regulations set on communication equipment.
Alternatively, the delay in task scheduling could be reduced or eliminated by introducing a microcontroller with a high-performance CPU built in, or with dual cores, or even using an application-specific integrated circuit (“ASIC”) with hardware peripherals dedicated to the transceiver functions of interest. However, a high-performance microcontroller would significantly increase component cost which is highly undesirable given the increasingly competitive optical transceiver market segment. Introducing an ASIC would have similarly undesirable affects since it would require a long development cycle and involve a high design cost.
Another possible solution to the problem is to improve the way execution of tasks is scheduled. There are several task scheduling algorithms commonly available, such as “round robin”, “priority scheduling”, “multiple priority queues”, etc. Although these methods work well with generic applications, they are not optimized to meet the special requirements of an optical transceiver application. A scheduling method tailored to meet the specific needs by optical transceivers may potentially boost the net processing power and reduce various response time. The scheduling method may be embodied as a full standalone scheduling algorithm or a cooperative method to work with an existing scheduling algorithm. The latter embodiment can take the existing advantage offered by some scheduling algorithms.
Therefore, an optical transceiver capable of efficiently scheduling and executing all tasks without compromising transceiver performance or increasing component cost would be advantageous.